package com.csx.distributed.invoke.rpc.core.registry;

/**
 * @author cuisongxu
 * @date 2025/9/19 周五 10:05
 */
public interface RegistryService {

    /**
     * 注册 url,将 rpc 服务写入到注册中心节点,当网络出现抖动时需要进行适当的重试。注册服务url的时候需要写入持久化文件
     *
     * @param url
     */
    void register(URL url);

    /**
     * 服务下线,持久化节点是无法进行服务下线操作的。下线的服务无法保证url是完整匹配的。移除持久化文件中的一些内容信息
     * @param url
     */
    void unRegister(URL url);

    /**
     * 消费方订阅服务
     * @param url
     */
    void subscribe(URL url);

    /**
     * 取消订阅内部的逻辑
     * @param url
     */
    void doUnsubscribe(URL url);
}
